#include <iostream>
#include <string>
#define lld long long
#define ENDL '\n'
#define LOG(var) std::cout << #var << " = " << (var) << ENDL
using std::cin;
using std::cout;
using std::string;

void solve() {
  string pattern;
  int n;
  cin >> pattern;
  cin >> n;

  auto isMatch = [&](const string &p, const string &s) -> bool {
    int i = 0, j = 0;
    int m = p.size(), n = s.size();

    int star_idx = -1;  // * 的位置
    int match_idx = -1; // 当前 * 匹配到的位置

    while (j < n) {
      if (i < m && (p[i] == s[j] || p[i] == '_')) {
        i++;
        j++;
      } else if (i < m && p[i] == '*') {

        star_idx = i;
        match_idx = j;
        i++;
      } else if (star_idx != -1) {
        // i 回到 *的位置star_idx 的下一个字符
        // match_idx记录当前的 * 指向哪个位置
        // *能匹配任意多个,把j指向当前 match 的下一个
        i = star_idx + 1;

        match_idx += 1;
        j = match_idx;
      } else {
        return false;
      }
    }

    while (i < m && p[i] == '*')
      i++;

    return i == m;
  };
  int cnt = 0;
  for (int i = 0; i < n; ++i) {
    string x;
    cin >> x;
    if (isMatch(pattern, x)) {
      cout << x << ENDL;
      cnt++;
    }
  }
  cout << cnt << ENDL;
}

int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int T = 1;
  cin >> T;
  while (T--) {
    solve();
  }
}